//auto gen by paipai.java.augogen ver 3.0.0
//author skyzhuang
//source idl: com.erp.storage.dao.idl.AddLoseBillOrOverFlowBillReq.java


#ifndef ERP_STORAGE_DDO_CLOSEBILLDDO_BY_AUTOGEN_V5_H
#define ERP_STORAGE_DDO_CLOSEBILLDDO_BY_AUTOGEN_V5_H


#include "app_platform/intf_serializable.h"
#include <bitset>
#include <string>
#include <sstream>
#include <iostream>


namespace erp
{
namespace storage
{
namespace ddo
{


class CLoseBillDdo : public ISerializable
{
	public:
		std::string m_sLastErrMsg;///<错误信息

		/**
		 *  版本号   
		 *
		 * 版本 >= 0
		 */
		uint32_t dwVersion;

		/**
		 * cVersion_u uflag field
		 */
		uint8_t cVersion_u; //optional flag

		/**
		 * 报损SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwLosebillSysNo;

		/**
		 * cLosebillSysNo_u uflag field
		 */
		uint8_t cLosebillSysNo_u; //optional flag

		/**
		 * 仓储业务单据Sysno
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwStockBillMasterSysno;

		/**
		 * cStockBillMasterSysno_u uflag field
		 */
		uint8_t cStockBillMasterSysno_u; //optional flag

		/**
		 * 商品SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwProductSysNo;

		/**
		 * cProductSysNo_u uflag field
		 */
		uint8_t cProductSysNo_u; //optional flag

		/**
		 * 库位SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwStorageSysNo;

		/**
		 * cStorageSysNo_u uflag field
		 */
		uint8_t cStorageSysNo_u; //optional flag

		/**
		 * 分支机构SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwBranchSysNo;

		/**
		 * cBranchSysNo_u uflag field
		 */
		uint8_t cBranchSysNo_u; //optional flag

		/**
		 * 来源单据号
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwFromBillSysNo;

		/**
		 * cFromBillSysNo_u uflag field
		 */
		uint8_t cFromBillSysNo_u; //optional flag

		/**
		 * 数量
		 *
		 * 版本 >= 0
		 */
		uint32_t dwQty;

		/**
		 * cQty_u uflag field
		 */
		uint8_t cQty_u; //optional flag

		/**
		 * 输入成本价
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwInputCostPrice;

		/**
		 * cInputCostPrice_u uflag field
		 */
		uint8_t cInputCostPrice_u; //optional flag

		/**
		 * 输入成本总金额
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwInputCostAmount;

		/**
		 * cInputCostAmount_u uflag field
		 */
		uint8_t cInputCostAmount_u; //optional flag

		/**
		 * 备注
		 *
		 * 版本 >= 0
		 */
		std::string strComment;

		/**
		 * cComment_u uflag field
		 */
		uint8_t cComment_u; //optional flag

		/**
		 * 成本价
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwCostPrice;

		/**
		 * cCostPrice_u uflag field
		 */
		uint8_t cCostPrice_u; //optional flag

		/**
		 * 商品成本总金额
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwCostAmount;

		/**
		 * cCostAmount_u uflag field
		 */
		uint8_t cCostAmount_u; //optional flag

		/**
		 * 过账时间
		 *
		 * 版本 >= 0
		 */
		uint32_t dwCheckTime;

		/**
		 * cCheckTime_u uflag field
		 */
		uint8_t cCheckTime_u; //optional flag

		/**
		 * 创建时间
		 *
		 * 版本 >= 0
		 */
		uint32_t dwRowCreatDate;

		/**
		 * cRowCreatDate_u uflag field
		 */
		uint8_t cRowCreatDate_u; //optional flag

		/**
		 * 创建人SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwCreatorSysNo;

		/**
		 * cCreatorSysNo_u uflag field
		 */
		uint8_t cCreatorSysNo_u; //optional flag

		/**
		 * 修改人SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwModifyUserSysNo;

		/**
		 * cModifyUserSysNo_u uflag field
		 */
		uint8_t cModifyUserSysNo_u; //optional flag

		/**
		 * 修改时间
		 *
		 * 版本 >= 0
		 */
		uint32_t dwModifyTime;

		/**
		 * cModifyTime_u uflag field
		 */
		uint8_t cModifyTime_u; //optional flag

		/**
		 * 报损属性,只读
		 *
		 * 版本 >= 0
		 */
		std::bitset<32>  bitsetLostProperty;

		/**
		 * cLostProperty_u uflag field
		 */
		uint8_t cLostProperty_u; //optional flag

		/**
		 * 报损属性,设置
		 *
		 * 版本 >= 0
		 */
		std::bitset<32>  bitsetLostPropertyInclude;

		/**
		 * cLostPropertyInclude_u uflag field
		 */
		uint8_t cLostPropertyInclude_u; //optional flag

		/**
		 * 报损属性,取消
		 *
		 * 版本 >= 0
		 */
		std::bitset<32>  bitsetLostPropertyExclude;

		/**
		 * cLostPropertyExclude_u uflag field
		 */
		uint8_t cLostPropertyExclude_u; //optional flag

		/**
		 * 报损状态
		 *
		 * 版本 >= 0
		 */
		uint32_t dwLostStatus;

		/**
		 * cLostStatus_u uflag field
		 */
		uint8_t cLostStatus_u; //optional flag




	public:
		CLoseBillDdo():
		dwVersion(0),
		cVersion_u(0),
		ddwLosebillSysNo(0),
		cLosebillSysNo_u(0),
		ddwStockBillMasterSysno(0),
		cStockBillMasterSysno_u(0),
		ddwProductSysNo(0),
		cProductSysNo_u(0),
		ddwStorageSysNo(0),
		cStorageSysNo_u(0),
		ddwBranchSysNo(0),
		cBranchSysNo_u(0),
		ddwFromBillSysNo(0),
		cFromBillSysNo_u(0),
		dwQty(0),
		cQty_u(0),
		ddwInputCostPrice(0),
		cInputCostPrice_u(0),
		ddwInputCostAmount(0),
		cInputCostAmount_u(0),
		cComment_u(0),
		ddwCostPrice(0),
		cCostPrice_u(0),
		ddwCostAmount(0),
		cCostAmount_u(0),
		dwCheckTime(0),
		cCheckTime_u(0),
		dwRowCreatDate(0),
		cRowCreatDate_u(0),
		ddwCreatorSysNo(0),
		cCreatorSysNo_u(0),
		ddwModifyUserSysNo(0),
		cModifyUserSysNo_u(0),
		dwModifyTime(0),
		cModifyTime_u(0),
		cLostProperty_u(0),
		cLostPropertyInclude_u(0),
		cLostPropertyExclude_u(0),
		dwLostStatus(0),
		cLostStatus_u(0) {}
				CLoseBillDdo& operator = (const CLoseBillDdo& obj){

			this->dwVersion = obj.dwVersion;
			this->ddwLosebillSysNo = obj.ddwLosebillSysNo;
			this->ddwStockBillMasterSysno = obj.ddwStockBillMasterSysno;
			this->ddwProductSysNo = obj.ddwProductSysNo;
			this->ddwStorageSysNo = obj.ddwStorageSysNo;
			this->ddwBranchSysNo = obj.ddwBranchSysNo;
			this->ddwFromBillSysNo = obj.ddwFromBillSysNo;
			this->dwQty = obj.dwQty;
			this->ddwInputCostPrice = obj.ddwInputCostPrice;
			this->ddwInputCostAmount = obj.ddwInputCostAmount;
			this->strComment = obj.strComment;
			this->ddwCostPrice = obj.ddwCostPrice;
			this->ddwCostAmount = obj.ddwCostAmount;
			this->dwCheckTime = obj.dwCheckTime;
			this->dwRowCreatDate = obj.dwRowCreatDate;
			this->ddwCreatorSysNo = obj.ddwCreatorSysNo;
			this->ddwModifyUserSysNo = obj.ddwModifyUserSysNo;
			this->dwModifyTime = obj.dwModifyTime;
			this->bitsetLostProperty = obj.bitsetLostProperty;
			this->bitsetLostPropertyInclude = obj.bitsetLostPropertyInclude;
			this->bitsetLostPropertyExclude = obj.bitsetLostPropertyExclude;
			this->dwLostStatus = obj.dwLostStatus;
			this->cVersion_u = obj.cVersion_u;
			this->cLosebillSysNo_u = obj.cLosebillSysNo_u;
			this->cStockBillMasterSysno_u = obj.cStockBillMasterSysno_u;
			this->cProductSysNo_u = obj.cProductSysNo_u;
			this->cStorageSysNo_u = obj.cStorageSysNo_u;
			this->cBranchSysNo_u = obj.cBranchSysNo_u;
			this->cFromBillSysNo_u = obj.cFromBillSysNo_u;
			this->cQty_u = obj.cQty_u;
			this->cInputCostPrice_u = obj.cInputCostPrice_u;
			this->cInputCostAmount_u = obj.cInputCostAmount_u;
			this->cComment_u = obj.cComment_u;
			this->cCostPrice_u = obj.cCostPrice_u;
			this->cCostAmount_u = obj.cCostAmount_u;
			this->cCheckTime_u = obj.cCheckTime_u;
			this->cRowCreatDate_u = obj.cRowCreatDate_u;
			this->cCreatorSysNo_u = obj.cCreatorSysNo_u;
			this->cModifyUserSysNo_u = obj.cModifyUserSysNo_u;
			this->cModifyTime_u = obj.cModifyTime_u;
			this->cLostProperty_u = obj.cLostProperty_u;
			this->cLostPropertyInclude_u = obj.cLostPropertyInclude_u;
			this->cLostPropertyExclude_u = obj.cLostPropertyExclude_u;
			this->cLostStatus_u = obj.cLostStatus_u;
			return *this;
		}

	public:


		/**
		 * 是否设置 版本号   了
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 bool  IsVersionSet() const{
				 return  cVersion_u != 0;
		}


		/**
		 * 获取uflag 版本号   了
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 const uint8_t   GetVersionUFlag() const{
				 return  cVersion_u;
		}


		/**
		 * 设置 版本号   
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 void  SetVersion( const uint32_t& sVal, uint8_t cUFlag=1){
				dwVersion = sVal;
				cVersion_u = cUFlag;
		}


		/**
		 * 获取 版本号   
		 * 
		 * @return dwVersion value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetVersion() const {
				return dwVersion;
		}


		/**
		 * 是否设置报损SysNo了
		 * 
		 * @param uint64_t:ddwLosebillSysNo
		 *  
		 * 
		 */
		 bool  IsLosebillSysNoSet() const{
				 return  cLosebillSysNo_u != 0;
		}


		/**
		 * 获取uflag报损SysNo了
		 * 
		 * @param uint64_t:ddwLosebillSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetLosebillSysNoUFlag() const{
				 return  cLosebillSysNo_u;
		}


		/**
		 * 设置报损SysNo
		 * 
		 * @param uint64_t:ddwLosebillSysNo
		 *  
		 * 
		 */
		 void  SetLosebillSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwLosebillSysNo = sVal;
				cLosebillSysNo_u = cUFlag;
		}


		/**
		 * 获取报损SysNo
		 * 
		 * @return ddwLosebillSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetLosebillSysNo() const {
				return ddwLosebillSysNo;
		}


		/**
		 * 是否设置仓储业务单据Sysno了
		 * 
		 * @param uint64_t:ddwStockBillMasterSysno
		 *  
		 * 
		 */
		 bool  IsStockBillMasterSysnoSet() const{
				 return  cStockBillMasterSysno_u != 0;
		}


		/**
		 * 获取uflag仓储业务单据Sysno了
		 * 
		 * @param uint64_t:ddwStockBillMasterSysno
		 *  
		 * 
		 */
		 const uint8_t   GetStockBillMasterSysnoUFlag() const{
				 return  cStockBillMasterSysno_u;
		}


		/**
		 * 设置仓储业务单据Sysno
		 * 
		 * @param uint64_t:ddwStockBillMasterSysno
		 *  
		 * 
		 */
		 void  SetStockBillMasterSysno( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwStockBillMasterSysno = sVal;
				cStockBillMasterSysno_u = cUFlag;
		}


		/**
		 * 获取仓储业务单据Sysno
		 * 
		 * @return ddwStockBillMasterSysno value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetStockBillMasterSysno() const {
				return ddwStockBillMasterSysno;
		}


		/**
		 * 是否设置商品SysNo了
		 * 
		 * @param uint64_t:ddwProductSysNo
		 *  
		 * 
		 */
		 bool  IsProductSysNoSet() const{
				 return  cProductSysNo_u != 0;
		}


		/**
		 * 获取uflag商品SysNo了
		 * 
		 * @param uint64_t:ddwProductSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetProductSysNoUFlag() const{
				 return  cProductSysNo_u;
		}


		/**
		 * 设置商品SysNo
		 * 
		 * @param uint64_t:ddwProductSysNo
		 *  
		 * 
		 */
		 void  SetProductSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwProductSysNo = sVal;
				cProductSysNo_u = cUFlag;
		}


		/**
		 * 获取商品SysNo
		 * 
		 * @return ddwProductSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetProductSysNo() const {
				return ddwProductSysNo;
		}


		/**
		 * 是否设置库位SysNo了
		 * 
		 * @param uint64_t:ddwStorageSysNo
		 *  
		 * 
		 */
		 bool  IsStorageSysNoSet() const{
				 return  cStorageSysNo_u != 0;
		}


		/**
		 * 获取uflag库位SysNo了
		 * 
		 * @param uint64_t:ddwStorageSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetStorageSysNoUFlag() const{
				 return  cStorageSysNo_u;
		}


		/**
		 * 设置库位SysNo
		 * 
		 * @param uint64_t:ddwStorageSysNo
		 *  
		 * 
		 */
		 void  SetStorageSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwStorageSysNo = sVal;
				cStorageSysNo_u = cUFlag;
		}


		/**
		 * 获取库位SysNo
		 * 
		 * @return ddwStorageSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetStorageSysNo() const {
				return ddwStorageSysNo;
		}


		/**
		 * 是否设置分支机构SysNo了
		 * 
		 * @param uint64_t:ddwBranchSysNo
		 *  
		 * 
		 */
		 bool  IsBranchSysNoSet() const{
				 return  cBranchSysNo_u != 0;
		}


		/**
		 * 获取uflag分支机构SysNo了
		 * 
		 * @param uint64_t:ddwBranchSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetBranchSysNoUFlag() const{
				 return  cBranchSysNo_u;
		}


		/**
		 * 设置分支机构SysNo
		 * 
		 * @param uint64_t:ddwBranchSysNo
		 *  
		 * 
		 */
		 void  SetBranchSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwBranchSysNo = sVal;
				cBranchSysNo_u = cUFlag;
		}


		/**
		 * 获取分支机构SysNo
		 * 
		 * @return ddwBranchSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetBranchSysNo() const {
				return ddwBranchSysNo;
		}


		/**
		 * 是否设置来源单据号了
		 * 
		 * @param uint64_t:ddwFromBillSysNo
		 *  
		 * 
		 */
		 bool  IsFromBillSysNoSet() const{
				 return  cFromBillSysNo_u != 0;
		}


		/**
		 * 获取uflag来源单据号了
		 * 
		 * @param uint64_t:ddwFromBillSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetFromBillSysNoUFlag() const{
				 return  cFromBillSysNo_u;
		}


		/**
		 * 设置来源单据号
		 * 
		 * @param uint64_t:ddwFromBillSysNo
		 *  
		 * 
		 */
		 void  SetFromBillSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwFromBillSysNo = sVal;
				cFromBillSysNo_u = cUFlag;
		}


		/**
		 * 获取来源单据号
		 * 
		 * @return ddwFromBillSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetFromBillSysNo() const {
				return ddwFromBillSysNo;
		}


		/**
		 * 是否设置数量了
		 * 
		 * @param uint32_t:dwQty
		 *  
		 * 
		 */
		 bool  IsQtySet() const{
				 return  cQty_u != 0;
		}


		/**
		 * 获取uflag数量了
		 * 
		 * @param uint32_t:dwQty
		 *  
		 * 
		 */
		 const uint8_t   GetQtyUFlag() const{
				 return  cQty_u;
		}


		/**
		 * 设置数量
		 * 
		 * @param uint32_t:dwQty
		 *  
		 * 
		 */
		 void  SetQty( const uint32_t& sVal, uint8_t cUFlag=1){
				dwQty = sVal;
				cQty_u = cUFlag;
		}


		/**
		 * 获取数量
		 * 
		 * @return dwQty value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetQty() const {
				return dwQty;
		}


		/**
		 * 是否设置输入成本价了
		 * 
		 * @param uint64_t:ddwInputCostPrice
		 *  
		 * 
		 */
		 bool  IsInputCostPriceSet() const{
				 return  cInputCostPrice_u != 0;
		}


		/**
		 * 获取uflag输入成本价了
		 * 
		 * @param uint64_t:ddwInputCostPrice
		 *  
		 * 
		 */
		 const uint8_t   GetInputCostPriceUFlag() const{
				 return  cInputCostPrice_u;
		}


		/**
		 * 设置输入成本价
		 * 
		 * @param uint64_t:ddwInputCostPrice
		 *  
		 * 
		 */
		 void  SetInputCostPrice( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwInputCostPrice = sVal;
				cInputCostPrice_u = cUFlag;
		}


		/**
		 * 获取输入成本价
		 * 
		 * @return ddwInputCostPrice value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetInputCostPrice() const {
				return ddwInputCostPrice;
		}


		/**
		 * 是否设置输入成本总金额了
		 * 
		 * @param uint64_t:ddwInputCostAmount
		 *  
		 * 
		 */
		 bool  IsInputCostAmountSet() const{
				 return  cInputCostAmount_u != 0;
		}


		/**
		 * 获取uflag输入成本总金额了
		 * 
		 * @param uint64_t:ddwInputCostAmount
		 *  
		 * 
		 */
		 const uint8_t   GetInputCostAmountUFlag() const{
				 return  cInputCostAmount_u;
		}


		/**
		 * 设置输入成本总金额
		 * 
		 * @param uint64_t:ddwInputCostAmount
		 *  
		 * 
		 */
		 void  SetInputCostAmount( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwInputCostAmount = sVal;
				cInputCostAmount_u = cUFlag;
		}


		/**
		 * 获取输入成本总金额
		 * 
		 * @return ddwInputCostAmount value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetInputCostAmount() const {
				return ddwInputCostAmount;
		}


		/**
		 * 是否设置备注了
		 * 
		 * @param std::string:strComment
		 *  
		 * 
		 */
		 bool  IsCommentSet() const{
				 return  cComment_u != 0;
		}


		/**
		 * 获取uflag备注了
		 * 
		 * @param std::string:strComment
		 *  
		 * 
		 */
		 const uint8_t   GetCommentUFlag() const{
				 return  cComment_u;
		}


		/**
		 * 设置备注
		 * 
		 * @param std::string:strComment
		 *  
		 * 
		 */
		 void  SetComment( const std::string& sVal, uint8_t cUFlag=1){
				strComment = sVal;
				cComment_u = cUFlag;
		}


		/**
		 * 获取备注
		 * 
		 * @return strComment value 类型为:std::string
		 * 
		 */
		 const std::string&  GetComment() const {
				return strComment;
		}


		/**
		 * 获取备注
		 * 
		 * @return strComment value 类型为:std::string
		 * 
		 */
		 std::string&  GetComment() {
				return strComment;
		}


		/**
		 * 是否设置成本价了
		 * 
		 * @param uint64_t:ddwCostPrice
		 *  
		 * 
		 */
		 bool  IsCostPriceSet() const{
				 return  cCostPrice_u != 0;
		}


		/**
		 * 获取uflag成本价了
		 * 
		 * @param uint64_t:ddwCostPrice
		 *  
		 * 
		 */
		 const uint8_t   GetCostPriceUFlag() const{
				 return  cCostPrice_u;
		}


		/**
		 * 设置成本价
		 * 
		 * @param uint64_t:ddwCostPrice
		 *  
		 * 
		 */
		 void  SetCostPrice( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwCostPrice = sVal;
				cCostPrice_u = cUFlag;
		}


		/**
		 * 获取成本价
		 * 
		 * @return ddwCostPrice value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetCostPrice() const {
				return ddwCostPrice;
		}


		/**
		 * 是否设置商品成本总金额了
		 * 
		 * @param uint64_t:ddwCostAmount
		 *  
		 * 
		 */
		 bool  IsCostAmountSet() const{
				 return  cCostAmount_u != 0;
		}


		/**
		 * 获取uflag商品成本总金额了
		 * 
		 * @param uint64_t:ddwCostAmount
		 *  
		 * 
		 */
		 const uint8_t   GetCostAmountUFlag() const{
				 return  cCostAmount_u;
		}


		/**
		 * 设置商品成本总金额
		 * 
		 * @param uint64_t:ddwCostAmount
		 *  
		 * 
		 */
		 void  SetCostAmount( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwCostAmount = sVal;
				cCostAmount_u = cUFlag;
		}


		/**
		 * 获取商品成本总金额
		 * 
		 * @return ddwCostAmount value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetCostAmount() const {
				return ddwCostAmount;
		}


		/**
		 * 是否设置过账时间了
		 * 
		 * @param uint32_t:dwCheckTime
		 *  
		 * 
		 */
		 bool  IsCheckTimeSet() const{
				 return  cCheckTime_u != 0;
		}


		/**
		 * 获取uflag过账时间了
		 * 
		 * @param uint32_t:dwCheckTime
		 *  
		 * 
		 */
		 const uint8_t   GetCheckTimeUFlag() const{
				 return  cCheckTime_u;
		}


		/**
		 * 设置过账时间
		 * 
		 * @param uint32_t:dwCheckTime
		 *  
		 * 
		 */
		 void  SetCheckTime( const uint32_t& sVal, uint8_t cUFlag=1){
				dwCheckTime = sVal;
				cCheckTime_u = cUFlag;
		}


		/**
		 * 获取过账时间
		 * 
		 * @return dwCheckTime value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetCheckTime() const {
				return dwCheckTime;
		}


		/**
		 * 是否设置创建时间了
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 bool  IsRowCreatDateSet() const{
				 return  cRowCreatDate_u != 0;
		}


		/**
		 * 获取uflag创建时间了
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 const uint8_t   GetRowCreatDateUFlag() const{
				 return  cRowCreatDate_u;
		}


		/**
		 * 设置创建时间
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 void  SetRowCreatDate( const uint32_t& sVal, uint8_t cUFlag=1){
				dwRowCreatDate = sVal;
				cRowCreatDate_u = cUFlag;
		}


		/**
		 * 获取创建时间
		 * 
		 * @return dwRowCreatDate value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetRowCreatDate() const {
				return dwRowCreatDate;
		}


		/**
		 * 是否设置创建人SysNo了
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 bool  IsCreatorSysNoSet() const{
				 return  cCreatorSysNo_u != 0;
		}


		/**
		 * 获取uflag创建人SysNo了
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetCreatorSysNoUFlag() const{
				 return  cCreatorSysNo_u;
		}


		/**
		 * 设置创建人SysNo
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 void  SetCreatorSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwCreatorSysNo = sVal;
				cCreatorSysNo_u = cUFlag;
		}


		/**
		 * 获取创建人SysNo
		 * 
		 * @return ddwCreatorSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetCreatorSysNo() const {
				return ddwCreatorSysNo;
		}


		/**
		 * 是否设置修改人SysNo了
		 * 
		 * @param uint64_t:ddwModifyUserSysNo
		 *  
		 * 
		 */
		 bool  IsModifyUserSysNoSet() const{
				 return  cModifyUserSysNo_u != 0;
		}


		/**
		 * 获取uflag修改人SysNo了
		 * 
		 * @param uint64_t:ddwModifyUserSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetModifyUserSysNoUFlag() const{
				 return  cModifyUserSysNo_u;
		}


		/**
		 * 设置修改人SysNo
		 * 
		 * @param uint64_t:ddwModifyUserSysNo
		 *  
		 * 
		 */
		 void  SetModifyUserSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwModifyUserSysNo = sVal;
				cModifyUserSysNo_u = cUFlag;
		}


		/**
		 * 获取修改人SysNo
		 * 
		 * @return ddwModifyUserSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetModifyUserSysNo() const {
				return ddwModifyUserSysNo;
		}


		/**
		 * 是否设置修改时间了
		 * 
		 * @param uint32_t:dwModifyTime
		 *  
		 * 
		 */
		 bool  IsModifyTimeSet() const{
				 return  cModifyTime_u != 0;
		}


		/**
		 * 获取uflag修改时间了
		 * 
		 * @param uint32_t:dwModifyTime
		 *  
		 * 
		 */
		 const uint8_t   GetModifyTimeUFlag() const{
				 return  cModifyTime_u;
		}


		/**
		 * 设置修改时间
		 * 
		 * @param uint32_t:dwModifyTime
		 *  
		 * 
		 */
		 void  SetModifyTime( const uint32_t& sVal, uint8_t cUFlag=1){
				dwModifyTime = sVal;
				cModifyTime_u = cUFlag;
		}


		/**
		 * 获取修改时间
		 * 
		 * @return dwModifyTime value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetModifyTime() const {
				return dwModifyTime;
		}


		/**
		 * 是否设置报损属性,只读了
		 * 
		 * @param std::bitset<32> :bitsetLostProperty
		 *  
		 * 
		 */
		 bool  IsLostPropertySet() const{
				 return  cLostProperty_u != 0;
		}


		/**
		 * 获取uflag报损属性,只读了
		 * 
		 * @param std::bitset<32> :bitsetLostProperty
		 *  
		 * 
		 */
		 const uint8_t   GetLostPropertyUFlag() const{
				 return  cLostProperty_u;
		}


		/**
		 * 设置报损属性,只读
		 * 
		 * @param std::bitset<32> :bitsetLostProperty
		 *  
		 * 
		 */
		 void  SetLostProperty( const std::bitset<32> & sVal, uint8_t cUFlag=1){
				bitsetLostProperty = sVal;
				cLostProperty_u = cUFlag;
		}


		/**
		 * 获取报损属性,只读
		 * 
		 * @return bitsetLostProperty value 类型为:std::bitset<32> 
		 * 
		 */
		 const std::bitset<32> &  GetLostProperty() const {
				return bitsetLostProperty;
		}


		/**
		 * 获取报损属性,只读
		 * 
		 * @return bitsetLostProperty value 类型为:std::bitset<32> 
		 * 
		 */
		 std::bitset<32> &  GetLostProperty() {
				return bitsetLostProperty;
		}


		/**
		 * 是否设置报损属性,设置了
		 * 
		 * @param std::bitset<32> :bitsetLostPropertyInclude
		 *  
		 * 
		 */
		 bool  IsLostPropertyIncludeSet() const{
				 return  cLostPropertyInclude_u != 0;
		}


		/**
		 * 获取uflag报损属性,设置了
		 * 
		 * @param std::bitset<32> :bitsetLostPropertyInclude
		 *  
		 * 
		 */
		 const uint8_t   GetLostPropertyIncludeUFlag() const{
				 return  cLostPropertyInclude_u;
		}


		/**
		 * 设置报损属性,设置
		 * 
		 * @param std::bitset<32> :bitsetLostPropertyInclude
		 *  
		 * 
		 */
		 void  SetLostPropertyInclude( const std::bitset<32> & sVal, uint8_t cUFlag=1){
				bitsetLostPropertyInclude = sVal;
				cLostPropertyInclude_u = cUFlag;
		}


		/**
		 * 获取报损属性,设置
		 * 
		 * @return bitsetLostPropertyInclude value 类型为:std::bitset<32> 
		 * 
		 */
		 const std::bitset<32> &  GetLostPropertyInclude() const {
				return bitsetLostPropertyInclude;
		}


		/**
		 * 获取报损属性,设置
		 * 
		 * @return bitsetLostPropertyInclude value 类型为:std::bitset<32> 
		 * 
		 */
		 std::bitset<32> &  GetLostPropertyInclude() {
				return bitsetLostPropertyInclude;
		}


		/**
		 * 是否设置报损属性,取消了
		 * 
		 * @param std::bitset<32> :bitsetLostPropertyExclude
		 *  
		 * 
		 */
		 bool  IsLostPropertyExcludeSet() const{
				 return  cLostPropertyExclude_u != 0;
		}


		/**
		 * 获取uflag报损属性,取消了
		 * 
		 * @param std::bitset<32> :bitsetLostPropertyExclude
		 *  
		 * 
		 */
		 const uint8_t   GetLostPropertyExcludeUFlag() const{
				 return  cLostPropertyExclude_u;
		}


		/**
		 * 设置报损属性,取消
		 * 
		 * @param std::bitset<32> :bitsetLostPropertyExclude
		 *  
		 * 
		 */
		 void  SetLostPropertyExclude( const std::bitset<32> & sVal, uint8_t cUFlag=1){
				bitsetLostPropertyExclude = sVal;
				cLostPropertyExclude_u = cUFlag;
		}


		/**
		 * 获取报损属性,取消
		 * 
		 * @return bitsetLostPropertyExclude value 类型为:std::bitset<32> 
		 * 
		 */
		 const std::bitset<32> &  GetLostPropertyExclude() const {
				return bitsetLostPropertyExclude;
		}


		/**
		 * 获取报损属性,取消
		 * 
		 * @return bitsetLostPropertyExclude value 类型为:std::bitset<32> 
		 * 
		 */
		 std::bitset<32> &  GetLostPropertyExclude() {
				return bitsetLostPropertyExclude;
		}


		/**
		 * 是否设置报损状态了
		 * 
		 * @param uint32_t:dwLostStatus
		 *  
		 * 
		 */
		 bool  IsLostStatusSet() const{
				 return  cLostStatus_u != 0;
		}


		/**
		 * 获取uflag报损状态了
		 * 
		 * @param uint32_t:dwLostStatus
		 *  
		 * 
		 */
		 const uint8_t   GetLostStatusUFlag() const{
				 return  cLostStatus_u;
		}


		/**
		 * 设置报损状态
		 * 
		 * @param uint32_t:dwLostStatus
		 *  
		 * 
		 */
		 void  SetLostStatus( const uint32_t& sVal, uint8_t cUFlag=1){
				dwLostStatus = sVal;
				cLostStatus_u = cUFlag;
		}


		/**
		 * 获取报损状态
		 * 
		 * @return dwLostStatus value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetLostStatus() const {
				return dwLostStatus;
		}

		virtual bool Serialize(CByteStreamNetwork& bs){
		
			uint32_t dwMyLen = 0;
			if(bs.isStoring()) //for write in buffer
			{
				//can not larger than 1 M.
				CByteStreamNetwork bsDummy(NULL, 1024 * 1024, false);
				//bsDummy for precheck the xo size...
				bsDummy.isStoring(true);
				Serialize_i(bsDummy);
				dwMyLen = bsDummy.getWrittenLength();
				bs & dwMyLen;
				Serialize_i(bs);
			}
			else
			{    //for read from buffer
				bs & dwMyLen;
				uint32_t dwReadedLen = bs.getReadLength();
				Serialize_i(bs);
				dwReadedLen = bs.getReadLength() - dwReadedLen;
				// dwReadedLen for the size of xo
				if( dwReadedLen > dwMyLen ){
					return false;
				}
				//go through the unwanted mem position...
				bs.goForward( dwMyLen - dwReadedLen );
			}

			return bs.isGood();
		}

		bool Serialize_i(CByteStreamNetwork& bsTmp){

			bsTmp & dwVersion; // 序列化 版本号    类型为uint32_t
			bsTmp & cVersion_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwLosebillSysNo; // 序列化报损SysNo 类型为uint64_t
			bsTmp & cLosebillSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwStockBillMasterSysno; // 序列化仓储业务单据Sysno 类型为uint64_t
			bsTmp & cStockBillMasterSysno_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwProductSysNo; // 序列化商品SysNo 类型为uint64_t
			bsTmp & cProductSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwStorageSysNo; // 序列化库位SysNo 类型为uint64_t
			bsTmp & cStorageSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwBranchSysNo; // 序列化分支机构SysNo 类型为uint64_t
			bsTmp & cBranchSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwFromBillSysNo; // 序列化来源单据号 类型为uint64_t
			bsTmp & cFromBillSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwQty; // 序列化数量 类型为uint32_t
			bsTmp & cQty_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwInputCostPrice; // 序列化输入成本价 类型为uint64_t
			bsTmp & cInputCostPrice_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwInputCostAmount; // 序列化输入成本总金额 类型为uint64_t
			bsTmp & cInputCostAmount_u; // 序列化uflag 类型为uint8_t
			bsTmp & strComment; // 序列化备注 类型为String
			bsTmp & cComment_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwCostPrice; // 序列化成本价 类型为uint64_t
			bsTmp & cCostPrice_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwCostAmount; // 序列化商品成本总金额 类型为uint64_t
			bsTmp & cCostAmount_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwCheckTime; // 序列化过账时间 类型为uint32_t
			bsTmp & cCheckTime_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwRowCreatDate; // 序列化创建时间 类型为uint32_t
			bsTmp & cRowCreatDate_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwCreatorSysNo; // 序列化创建人SysNo 类型为uint64_t
			bsTmp & cCreatorSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwModifyUserSysNo; // 序列化修改人SysNo 类型为uint64_t
			bsTmp & cModifyUserSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwModifyTime; // 序列化修改时间 类型为uint32_t
			bsTmp & cModifyTime_u; // 序列化uflag 类型为uint8_t
			bsTmp & bitsetLostProperty; // 序列化报损属性,只读 类型为BitSet
			bsTmp & cLostProperty_u; // 序列化uflag 类型为uint8_t
			bsTmp & bitsetLostPropertyInclude; // 序列化报损属性,设置 类型为BitSet
			bsTmp & cLostPropertyInclude_u; // 序列化uflag 类型为uint8_t
			bsTmp & bitsetLostPropertyExclude; // 序列化报损属性,取消 类型为BitSet
			bsTmp & cLostPropertyExclude_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwLostStatus; // 序列化报损状态 类型为uint32_t
			bsTmp & cLostStatus_u; // 序列化uflag 类型为uint8_t
			return bsTmp.isGood();
		}

		const char* GetLastErrMsg() const{
			return m_sLastErrMsg.c_str();
		}

		bool VerifyLoseBillDdo(){

			if(!IsVersionSet()){
				m_sLastErrMsg = "Miss Param:version";
				return false;
			}

			if(!IsLosebillSysNoSet()){
				m_sLastErrMsg = "Miss Param:losebillSysNo";
				return false;
			}

			if(!IsStockBillMasterSysnoSet()){
				m_sLastErrMsg = "Miss Param:stockBillMasterSysno";
				return false;
			}

			if(!IsProductSysNoSet()){
				m_sLastErrMsg = "Miss Param:productSysNo";
				return false;
			}

			if(!IsStorageSysNoSet()){
				m_sLastErrMsg = "Miss Param:storageSysNo";
				return false;
			}

			if(!IsBranchSysNoSet()){
				m_sLastErrMsg = "Miss Param:branchSysNo";
				return false;
			}

			if(!IsFromBillSysNoSet()){
				m_sLastErrMsg = "Miss Param:fromBillSysNo";
				return false;
			}

			if(!IsQtySet()){
				m_sLastErrMsg = "Miss Param:qty";
				return false;
			}

			if(!IsInputCostPriceSet()){
				m_sLastErrMsg = "Miss Param:inputCostPrice";
				return false;
			}

			if(!IsInputCostAmountSet()){
				m_sLastErrMsg = "Miss Param:inputCostAmount";
				return false;
			}

			if(!IsCommentSet()){
				m_sLastErrMsg = "Miss Param:comment";
				return false;
			}

			if(!IsCostPriceSet()){
				m_sLastErrMsg = "Miss Param:costPrice";
				return false;
			}

			if(!IsCostAmountSet()){
				m_sLastErrMsg = "Miss Param:costAmount";
				return false;
			}

			if(!IsCheckTimeSet()){
				m_sLastErrMsg = "Miss Param:checkTime";
				return false;
			}

			if(!IsRowCreatDateSet()){
				m_sLastErrMsg = "Miss Param:rowCreatDate";
				return false;
			}

			if(!IsCreatorSysNoSet()){
				m_sLastErrMsg = "Miss Param:creatorSysNo";
				return false;
			}

			if(!IsModifyUserSysNoSet()){
				m_sLastErrMsg = "Miss Param:modifyUserSysNo";
				return false;
			}

			if(!IsModifyTimeSet()){
				m_sLastErrMsg = "Miss Param:modifyTime";
				return false;
			}

			if(!IsLostPropertySet()){
				m_sLastErrMsg = "Miss Param:lostProperty";
				return false;
			}

			if(!IsLostPropertyIncludeSet()){
				m_sLastErrMsg = "Miss Param:lostPropertyInclude";
				return false;
			}

			if(!IsLostPropertyExcludeSet()){
				m_sLastErrMsg = "Miss Param:lostPropertyExclude";
				return false;
			}

			if(!IsLostStatusSet()){
				m_sLastErrMsg = "Miss Param:lostStatus";
				return false;
			}
			return true;
		}

		void DumpData(std::ostream& oss) const{
		
			oss<<"[dwVersion:"<<dwVersion<<"] ";
			oss<<"[cVersion_u:"<<(int)cVersion_u<<"] ";
			oss<<"[ddwLosebillSysNo:"<<ddwLosebillSysNo<<"] ";
			oss<<"[cLosebillSysNo_u:"<<(int)cLosebillSysNo_u<<"] ";
			oss<<"[ddwStockBillMasterSysno:"<<ddwStockBillMasterSysno<<"] ";
			oss<<"[cStockBillMasterSysno_u:"<<(int)cStockBillMasterSysno_u<<"] ";
			oss<<"[ddwProductSysNo:"<<ddwProductSysNo<<"] ";
			oss<<"[cProductSysNo_u:"<<(int)cProductSysNo_u<<"] ";
			oss<<"[ddwStorageSysNo:"<<ddwStorageSysNo<<"] ";
			oss<<"[cStorageSysNo_u:"<<(int)cStorageSysNo_u<<"] ";
			oss<<"[ddwBranchSysNo:"<<ddwBranchSysNo<<"] ";
			oss<<"[cBranchSysNo_u:"<<(int)cBranchSysNo_u<<"] ";
			oss<<"[ddwFromBillSysNo:"<<ddwFromBillSysNo<<"] ";
			oss<<"[cFromBillSysNo_u:"<<(int)cFromBillSysNo_u<<"] ";
			oss<<"[dwQty:"<<dwQty<<"] ";
			oss<<"[cQty_u:"<<(int)cQty_u<<"] ";
			oss<<"[ddwInputCostPrice:"<<ddwInputCostPrice<<"] ";
			oss<<"[cInputCostPrice_u:"<<(int)cInputCostPrice_u<<"] ";
			oss<<"[ddwInputCostAmount:"<<ddwInputCostAmount<<"] ";
			oss<<"[cInputCostAmount_u:"<<(int)cInputCostAmount_u<<"] ";
			oss<<"[strComment:"<<strComment<<"] ";
			oss<<"[cComment_u:"<<(int)cComment_u<<"] ";
			oss<<"[ddwCostPrice:"<<ddwCostPrice<<"] ";
			oss<<"[cCostPrice_u:"<<(int)cCostPrice_u<<"] ";
			oss<<"[ddwCostAmount:"<<ddwCostAmount<<"] ";
			oss<<"[cCostAmount_u:"<<(int)cCostAmount_u<<"] ";
			oss<<"[dwCheckTime:"<<dwCheckTime<<"] ";
			oss<<"[cCheckTime_u:"<<(int)cCheckTime_u<<"] ";
			oss<<"[dwRowCreatDate:"<<dwRowCreatDate<<"] ";
			oss<<"[cRowCreatDate_u:"<<(int)cRowCreatDate_u<<"] ";
			oss<<"[ddwCreatorSysNo:"<<ddwCreatorSysNo<<"] ";
			oss<<"[cCreatorSysNo_u:"<<(int)cCreatorSysNo_u<<"] ";
			oss<<"[ddwModifyUserSysNo:"<<ddwModifyUserSysNo<<"] ";
			oss<<"[cModifyUserSysNo_u:"<<(int)cModifyUserSysNo_u<<"] ";
			oss<<"[dwModifyTime:"<<dwModifyTime<<"] ";
			oss<<"[cModifyTime_u:"<<(int)cModifyTime_u<<"] ";
		//嵌套内容有错误，建议使用dumpDataTree方法，复杂数据格式更直观！
			oss<<"[cLostProperty_u:"<<(int)cLostProperty_u<<"] ";
		//嵌套内容有错误，建议使用dumpDataTree方法，复杂数据格式更直观！
			oss<<"[cLostPropertyInclude_u:"<<(int)cLostPropertyInclude_u<<"] ";
		//嵌套内容有错误，建议使用dumpDataTree方法，复杂数据格式更直观！
			oss<<"[cLostPropertyExclude_u:"<<(int)cLostPropertyExclude_u<<"] ";
			oss<<"[dwLostStatus:"<<dwLostStatus<<"] ";
			oss<<"[cLostStatus_u:"<<(int)cLostStatus_u<<"] ";
		
		}

		// codydeng提供,非常好的dump方法 ^-^  。。。。。
		template<typename T>
		T & DumpPlusData(T& oss){
			oss<<"dwVersion:"<<dwVersion;
			oss<<"[cVersion_u:"<<cVersion_u<<"] ";
			oss<<"ddwLosebillSysNo:"<<ddwLosebillSysNo;
			oss<<"[cLosebillSysNo_u:"<<cLosebillSysNo_u<<"] ";
			oss<<"ddwStockBillMasterSysno:"<<ddwStockBillMasterSysno;
			oss<<"[cStockBillMasterSysno_u:"<<cStockBillMasterSysno_u<<"] ";
			oss<<"ddwProductSysNo:"<<ddwProductSysNo;
			oss<<"[cProductSysNo_u:"<<cProductSysNo_u<<"] ";
			oss<<"ddwStorageSysNo:"<<ddwStorageSysNo;
			oss<<"[cStorageSysNo_u:"<<cStorageSysNo_u<<"] ";
			oss<<"ddwBranchSysNo:"<<ddwBranchSysNo;
			oss<<"[cBranchSysNo_u:"<<cBranchSysNo_u<<"] ";
			oss<<"ddwFromBillSysNo:"<<ddwFromBillSysNo;
			oss<<"[cFromBillSysNo_u:"<<cFromBillSysNo_u<<"] ";
			oss<<"dwQty:"<<dwQty;
			oss<<"[cQty_u:"<<cQty_u<<"] ";
			oss<<"ddwInputCostPrice:"<<ddwInputCostPrice;
			oss<<"[cInputCostPrice_u:"<<cInputCostPrice_u<<"] ";
			oss<<"ddwInputCostAmount:"<<ddwInputCostAmount;
			oss<<"[cInputCostAmount_u:"<<cInputCostAmount_u<<"] ";
			oss<<"strComment:"<<strComment;
			oss<<"[cComment_u:"<<cComment_u<<"] ";
			oss<<"ddwCostPrice:"<<ddwCostPrice;
			oss<<"[cCostPrice_u:"<<cCostPrice_u<<"] ";
			oss<<"ddwCostAmount:"<<ddwCostAmount;
			oss<<"[cCostAmount_u:"<<cCostAmount_u<<"] ";
			oss<<"dwCheckTime:"<<dwCheckTime;
			oss<<"[cCheckTime_u:"<<cCheckTime_u<<"] ";
			oss<<"dwRowCreatDate:"<<dwRowCreatDate;
			oss<<"[cRowCreatDate_u:"<<cRowCreatDate_u<<"] ";
			oss<<"ddwCreatorSysNo:"<<ddwCreatorSysNo;
			oss<<"[cCreatorSysNo_u:"<<cCreatorSysNo_u<<"] ";
			oss<<"ddwModifyUserSysNo:"<<ddwModifyUserSysNo;
			oss<<"[cModifyUserSysNo_u:"<<cModifyUserSysNo_u<<"] ";
			oss<<"dwModifyTime:"<<dwModifyTime;
			oss<<"[cModifyTime_u:"<<cModifyTime_u<<"] ";
			oss<<"bitsetLostProperty:"<<bitsetLostProperty;
			oss<<"[cLostProperty_u:"<<cLostProperty_u<<"] ";
			oss<<"bitsetLostPropertyInclude:"<<bitsetLostPropertyInclude;
			oss<<"[cLostPropertyInclude_u:"<<cLostPropertyInclude_u<<"] ";
			oss<<"bitsetLostPropertyExclude:"<<bitsetLostPropertyExclude;
			oss<<"[cLostPropertyExclude_u:"<<cLostPropertyExclude_u<<"] ";
			oss<<"dwLostStatus:"<<dwLostStatus;
			oss<<"[cLostStatus_u:"<<cLostStatus_u<<"] ";
			return oss;
		}

		// wileywang提供,树形dump方法 ^-^  。。。。。
		void DumpDataTree(std::ostream& os, int ident = 0)const {
			g_pprint(os, "dwVersion", dwVersion, ident);
			g_pprint(os, "cVersion_u", cVersion_u, ident);
			g_pprint(os, "ddwLosebillSysNo", ddwLosebillSysNo, ident);
			g_pprint(os, "cLosebillSysNo_u", cLosebillSysNo_u, ident);
			g_pprint(os, "ddwStockBillMasterSysno", ddwStockBillMasterSysno, ident);
			g_pprint(os, "cStockBillMasterSysno_u", cStockBillMasterSysno_u, ident);
			g_pprint(os, "ddwProductSysNo", ddwProductSysNo, ident);
			g_pprint(os, "cProductSysNo_u", cProductSysNo_u, ident);
			g_pprint(os, "ddwStorageSysNo", ddwStorageSysNo, ident);
			g_pprint(os, "cStorageSysNo_u", cStorageSysNo_u, ident);
			g_pprint(os, "ddwBranchSysNo", ddwBranchSysNo, ident);
			g_pprint(os, "cBranchSysNo_u", cBranchSysNo_u, ident);
			g_pprint(os, "ddwFromBillSysNo", ddwFromBillSysNo, ident);
			g_pprint(os, "cFromBillSysNo_u", cFromBillSysNo_u, ident);
			g_pprint(os, "dwQty", dwQty, ident);
			g_pprint(os, "cQty_u", cQty_u, ident);
			g_pprint(os, "ddwInputCostPrice", ddwInputCostPrice, ident);
			g_pprint(os, "cInputCostPrice_u", cInputCostPrice_u, ident);
			g_pprint(os, "ddwInputCostAmount", ddwInputCostAmount, ident);
			g_pprint(os, "cInputCostAmount_u", cInputCostAmount_u, ident);
			g_pprint(os, "strComment", strComment, ident);
			g_pprint(os, "cComment_u", cComment_u, ident);
			g_pprint(os, "ddwCostPrice", ddwCostPrice, ident);
			g_pprint(os, "cCostPrice_u", cCostPrice_u, ident);
			g_pprint(os, "ddwCostAmount", ddwCostAmount, ident);
			g_pprint(os, "cCostAmount_u", cCostAmount_u, ident);
			g_pprint(os, "dwCheckTime", dwCheckTime, ident);
			g_pprint(os, "cCheckTime_u", cCheckTime_u, ident);
			g_pprint(os, "dwRowCreatDate", dwRowCreatDate, ident);
			g_pprint(os, "cRowCreatDate_u", cRowCreatDate_u, ident);
			g_pprint(os, "ddwCreatorSysNo", ddwCreatorSysNo, ident);
			g_pprint(os, "cCreatorSysNo_u", cCreatorSysNo_u, ident);
			g_pprint(os, "ddwModifyUserSysNo", ddwModifyUserSysNo, ident);
			g_pprint(os, "cModifyUserSysNo_u", cModifyUserSysNo_u, ident);
			g_pprint(os, "dwModifyTime", dwModifyTime, ident);
			g_pprint(os, "cModifyTime_u", cModifyTime_u, ident);
			g_pprint(os, "bitsetLostProperty", bitsetLostProperty, ident);
			g_pprint(os, "cLostProperty_u", cLostProperty_u, ident);
			g_pprint(os, "bitsetLostPropertyInclude", bitsetLostPropertyInclude, ident);
			g_pprint(os, "cLostPropertyInclude_u", cLostPropertyInclude_u, ident);
			g_pprint(os, "bitsetLostPropertyExclude", bitsetLostPropertyExclude, ident);
			g_pprint(os, "cLostPropertyExclude_u", cLostPropertyExclude_u, ident);
			g_pprint(os, "dwLostStatus", dwLostStatus, ident);
			g_pprint(os, "cLostStatus_u", cLostStatus_u, ident);
		}
		
		//提供ToString借口，默认为DumpData格式，请按需要进行修改
		std::string ToString() const{
			std::stringstream ss;
			DumpData(ss);
			return ss.str();
		}

/**
 ********************以下信息是每个版本的字段********************
 */

};

}
}
}

#endif /* ERP_STORAGE_DDO_CLOSEBILLDDO_BY_AUTOGEN_V5_H */
